Golf shot tracking system

ABSTRACT

A golf tracking system including a tag coupled to a golf club. The tag includes a plurality of sensors, each which output a signal based on a detected movement of the golf club, a microcontroller that compares each of the plurality of sensor outputs to stored reference sensor output values, and a transceiver that transmits data corresponding to the sensor outputs to a device remote from the tag based on the comparison performed by the microcontroller. The location-aware device then processes the information received from the tag to determine whether a shot should be registered.

PRIORITY CLAIMS

This application is a continuation of U.S. patent application Ser. No.14/194,072, filed Feb. 28, 2014, which claims the benefit of of U.S.Provisional Application Ser. No. 61/258,967, filed Nov. 6, 2009, theentire contents of which is incorporated herein by reference.

BACKGROUND OF THE INVENTION 1. Field of the Invention

The present invention relates to a method and apparatus for detecting agolf shot by processing outputs of a plurality of sensors, and reportingthe sensor outputs or an indication of a detected golf shot to aportable position-aware device, which then records the location of thegolf shot in association with the position information.

2. Description of the Related Art

In the game in golf, it is essential for a player to have accuratedistance measurements corresponding to a golf hole before taking a shot.For example, a player may wish to know the distance from his or herlocation to the front and back portions of a hazard, to the end of afairway, to the front, middle and back portions of the green, etc.Previously, it was necessary for a player to estimate these distances byusing markings on the course and/or a yardage book indicating distancesbetween various points on the course.

Recently, however, the use of portable location-aware electronic deviceshas become common in the game of golf to ascertain distances from aplayer's current position to various features on the course. Theselocation-aware devices are typically in the form of a handheld computingdevice, which may be capable of displaying an outline of a golf hole anddistances from the location-aware device to the various features on thegolf hole. These devices are also configured to allow a player tomanually enter and track various statistics related to a round of golf.For example, the player may manually enter a hole-by-hole score into thelocation-aware device, manually record a location of a shot, manuallyrecord a club used for a particular shot, etc.

The drawback to tracking statistics using these devices, however, isthat the user must manually enter these statistics. Thus, in order totrack a round shot-by-shot, for example, the player must manually enterdata in to the device each time a shot is taken. Such a process istime-consuming, distracting, and takes away from a player's enjoyment ofthe round of golf.

SUMMARY OF THE INVENTION

In view of the above noted shortcomings in manually tracking statisticsin a portable location-aware device, the inventors derived a system thatallows for statistics to be automatically input into the location-awaredevice.

More particularly, the present invention is directed to a configurationin which a golf shot is automatically detected and stored in thelocation-aware device without the need for user intervention. In oneexemplary embodiment, the configuration includes a tag coupled to a golfclub and including a plurality of sensors, each configured to output asignal based on a detected movement of the golf club, a microcontrollerconfigured to compare each of the plurality of sensor outputs to storedreference sensor output values, and a transceiver configured to transmitdata corresponding to the sensor outputs to the location-aware devicebased on the comparison performed by the microcontroller. Thelocation-aware device then processes the information received from thetag to determine whether a shot should be registered.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawing figures depict one or more implementations in accord withthe present invention, by way of example only, not by way oflimitations. In the figures, like reference numerals refer to the sameor similar elements. The description may be better understood when readin connection with the accompanying drawings, of which:

FIG. 1 is a block diagram showing an exemplary hardware configuration ofa location-aware device;

FIG. 2 is a block diagram showing an exemplary hardware configuration ofa tag;

FIG. 3 is a flow chart outlining an exemplary process of detecting andprocessing motion dynamics of a club using the tag;

FIGS. 4A-4C depict a flow chart showing an exemplary flow of detecting aball strike event using the various sensors located in the tag;

FIG. 5 is a flow chart depicting an exemplary process of acquiring andanalyzing tilt sensor data;

FIG. 6 is a flow chart depicting an exemplary process acquiring andanalyzing light sensor data;

FIG. 7 is a flow chart depicting an exemplary process of acquiring andstoring accelerometer data;

FIG. 8 is a flow chart depicting an exemplary process of acquiring andstoring the output from the gyro sensor;

FIG. 9 is a flow chart depicting an exemplary flow of acquiring andstoring piezo sensor data;

FIG. 10 illustrates exemplary sensor outputs;

FIG. 11 illustrates exemplary sensor outputs;

FIG. 12 illustrates exemplary sensor outputs;

FIG. 13 is a flow chart showing an exemplary process performed by thelocation-aware device upon receiving data from the tag;

FIG. 14A-14B is a flow chart showing an exemplary process of activelyretrieving information from the tags by the location-aware device;

FIGS. 15A-15C is a flow chart showing an exemplary embodiment of aprocess of detecting a ball strike event using a tag implementing onlyan accelerometer;

FIG. 16 is a flowchart showing an exemplary adaptive process pertainingto tags;

FIG. 17 is a flowchart showing an exemplary adaptive process pertainingto the location-aware device.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

An exemplary embodiment of the present invention will be described belowwith reference to the drawings.

FIG. 1 is a block diagram showing an exemplary configuration of alocation-aware portable device 100 that is used by a player to obtaingolf course related distance information. The location-aware device 100may be a handheld device including multiple components that are managedby microcontroller 105 running software stored in a flash memory 115 orrandom-access memory 110, for example. The microcontroller 105 serves asan interface and controller for a plurality of hardware systems anddevice application systems of the location-aware device. In an exemplaryembodiment, the primary purpose of the portable location-aware device100 is to provide a golfer with distance information to various pointson a green, to various targets and hazards on the golf course.

The distance information is provided to the user by referencing mappeddata stored in the flash memory 110, for example, to real time GlobalPositioning System (GPS) position data acquired by an onboard GPSreceiver 120. The microcontroller 105 processes the GPS data and derivescalculations to the mapped points and various areas on the course. Thisinformation is then displayed to the player through a graphical userinterface that includes, for example, a sunlight readable colorthin-film transistor (TFT) liquid crystal display (LCD) display 125having a light-emitting diode (LED) backlight 130. The LED backlight 130is controlled by a photosensor 135 that measures ambient light andadjusts the brightness of the backlight accordingly. The LCD 125 istransflective so the backlight brightness is reduced when the unit is insunlight and the brightness is increased when the unit is in low lightconditions.

The microcontroller 105 also receives input from the player by a keypadand/or joystick 140. The user input may correspond to a command to movea cursor on the graphical user interface, a command to enter data, acommand to select a particular course for display, etc. Thelocation-aware device may also include a touch screen 143 that would beused by the player to enter information and/or otherwise control thelocation-aware device 200.

As noted above, the mapped course data may be stored in an onboard flashmemory 115, which can be updated via connection of a Universal SerialBus (USB) port 140, micro-Secure Digital (micro-SD) card 145, WiFi radio170 or other wireless communications device 175. An operating system ofthe microcontroller 105 and various applications executed by themicrocontroller 105 may also utilize the onboard RAM 110 for storage oftemporary data.

An onboard accelerometer 150 determines an orientation of the unit andmeasures acceleration along a vector. In one exemplary embodiment, theaxis orientation and acceleration information is used by themicrocontroller 105 to rotate the course data displayed via thegraphical user interface to align with the player's orientation on aparticular hole, for example.

The location-aware device is powered by a battery 115 that is managed bya charging circuit and power management circuit 160 to provide power tothe various components of the location-aware device.

The location-aware device also includes a radio-frequency (RF)transceiver 165 that receives signals transmitted from the tags 200,described in detail below, which may transmit a club tag ID, tag batterystatus and other sensor data if the tag is in an operational state. Themore specific details regarding the various states of the tags and thedata transmitted from the tags are discussed in detail below.

Data transmitted from the tags is received by the RFID transceiver 165of the location-aware device 100, and is processed by themicrocontroller 105 to record an ID of the club being used, the currentposition of the location-aware device, club swing data and/or whetherthere is an indication of a ball strike with the golf club to which thetag is attached. This data is stored in a memory (e.g., flash memory 115and/or RAM memory 110) and is used by the microcontroller 105 toautomate the scoring process, remind the golfer if a club has been leftbehind, display the round and shot data graphically on the device, andto be available to upload the data to a computer and/or website forpost-round analysis and graphical tracking of the player's golf shotsover the course of a round.

FIG. 2 is a block diagram showing an exemplary configuration of thehardware of an RFID tag 200 that is attached to a golf club, and is usedto sense various forces applied to the club. The tag 200 includes amicrocontroller 205 that executes applications stored in a memory 210 toprocesses outputs from various sensors of the tag 200 to either detectthat a shot has been taken with the club, or relay raw data to thelocation-aware device 100, which then determines, based on the receiveddata, that a shot has been taken with the club.

The tag 200 includes an RF transceiver 215 that communicates with the RFtransceiver 165 of the location-aware device 165. In one exemplaryembodiment, the RF transceiver 165 in the location-aware-device 100 andthe RF transceiver 215 in the tag 200 are 2.4 GHz transceivers. However,while not described herein, various other short-range wirelesstransceiver arrangements may be implemented without departing from thescope of the present invention. Another function enabled with atransceiver on the tags would allow the tags to communicate with eachother as an ad-hoc network and relay status and information throughother tags to the receiving device.

The tag 200 also includes a plurality of solid state ormicro-electro-mechanical (MEM) sensors that are used in the process ofdetecting whether a ball is struck by the golf club. Examples of thesesensors will be described in more detail below.

In one exemplary embodiment, the tag includes an accelerometer 220 thatsenses vector motion pertaining to the club swing. The tag may alsoinclude a position sensor 225, which may be in the form of a tiltsensor, for example, that detects a vertical or horizontal orientationof the club. A piezo sensor 230 is also provided in the tag 200, anddetects a rapid vibration event, such as the golf club making contactwith a golf ball. Additionally, the tag 200 may include a gyro-sensor235 that detects a rotational velocity and/or direction of the golf clubto which the tag 200 is attached. The tag 200 may also include a lightsensor 243, which detects an amount oflight incident on the tag. Asdiscussed in more detail below, this light sensor may be used todetermine whether the club has be removed from, or returned to, aplayer's golf bag.

Certain electronic components can have functions that may be combined onto one chip and sensor package and serve multiple purposes. For example,the accelerometer 220 may be configured via software to also providedegree of tilt data in addition to acceleration data. This sameelectronic component may then be configured to also include a gyrosensor and a “tap” sensor effectively reducing the number of componentsneeded on the tag circuit board. Optionally, the sensor components canbe designed into a custom electronic chip that integrates all of thesensor functions of individual components. This would have the advantageof simplifying the circuitry on the tag and provide better powermanagement and battery life on the tag.

The onboard microcontroller 205 processes and analyzes analog waveformor digital signal profile outputs from the sensors to determine if theoutput matches a pattern of data indicating a club swing and a ballstrike. As discussed in further detail below, the outputs from each ofthe sensors may be compared against certain signal “signatures” and/orthresholds stored in the memory 210 to determine whether a ball strikeevent has occurred. These signatures, or pattern data, may be updated asthe system learns what data indicates a ball strike and what data doesnot indicate a ball strike. In this manner, the tag 200 may self-learnover a period of time so as to increase the accuracy of detecting when aball strike even occurs. The thresholds and parameters would be updatedin the tag's memory via input through the tag transceiver. The datawould be configured and sent by the location-aware device to optimizethe tag sensor processing parameters.

Further, additional sensor data may be merged into an input to themicrocontroller 205 to indicate club position and/or state and/or verifya ball strike and/or aid in the refinement of signal patterns indicatinga ball strike. This other sensor data may be provided from additionalsensors, such as a solid state accelerometer and/or shock sensors thatoutput an indication of a shock event (ball strike) without the useofpiezo sensors, and/or solid state or position sensors that indicate anorientation of the club. This additional sensor data could also beincorporated into the profile data patterns.

The components of the tag are powered by a battery 245, which iscontrolled by a power management circuit 250. The power managementcircuit 250 manages the power output from the battery 250 to thecomponents of the tag 200, and is capable of reporting a status of thepower remaining in the battery to the microcontroller 205.

A piezo vibration damper could be incorporated into the system toconvert mechanical motion and vibration into electrical energy. If thisis mounted internal to the grip and/or club shaft it would have theeffect of dampening vibrations from striking the ball. The electricalenergy would be stored in a capacitor and/or a battery. Typically apiezo device would be composed of a material having piezo-electricproperties and incorporated on a flexible polymer substrate. The designof which would fit into the section of the club comprising the gripand/or comprising the internal section of the club shaft. Electricallyit would be connected to a circuit that would capture and store theelectrical energy derived from the mechanical and vibration motions ofthe club shaft.

The tag would ideally be a small format miniaturized circuit that iswaterproof and ruggedized mounted to the end of the club grip orinternal to the upper portion of the club shaft.

FIG. 3 is a flow chart outlining an overall process of detecting andprocessing motion dynamics of a club using the tag 200.

The process starts with the at S300 by collecting club dynamic motiondata from one or more of the accelerometer 220, position sensor 225,piezo sensor 230 gyro sensor 235, light sensor 243 and any other sensors240 included in the tag 200. The process of initializing an operation ofthe sensors will be described in greater detail below.

At S305 and S310 the microcontroller 205 of the tag 200 receives andprocess the data received by the plurality of sensors. In one exemplaryembodiment, the microcontroller 205 may use filters and algorithm toremove extraneous noise and other events that could contribute to falseindications of a ball strike event. This may be done by comparing thesensor data to a set of preliminary threshold values to eliminateerroneous detections. This process is discussed in more detail withreference to FIGS. 4A-4C.

The discussed in more detail below, the microcontroller 205 isconfigured to process the data received from the plurality of sensors,output the processed data to the transceiver 215, which then transits asignal to the transceiver 165 of the location-aware device S320indicating that a ball strike event has been detected. In anotherexemplary embodiment, the microcontroller 205 is configured to controlthe transceiver 215 output motion dynamic data output from the sensorsto the location-aware device 100. The microcontroller 105 at thelocation-aware device 100 then processes the received data to detectwhether a ball strike event has occurred. This motion dynamic data maybe raw data output by the sensors of the tag 200, or may be a processedform of sensor data that is processed by the microcontroller 205 beforebeing output to the location-aware device 100. Once the transceiver 165of the location-aware device I 00 receives data from the tag 200, thisdata is output S325 to the microcontroller 105 of the location-awaredevice 100 for further processing. Regardless of the nature of the dataoutput by the tag 200, the microcontroller 205 may also be configured toappend additional data to the tag.

This additional data that is appended by the microcontroller 205 may beunique identification corresponding to the tag. This uniqueidentification data may specifically identify a club (e.g., 5-iron,driver, club manufacturer, shaft length, weight, etc.), by thelocation-aware device transmitting that data to a memory location on thetag or it may be inserted to a memory location on the tag atmanufacturer, or may be data unique to the tag 200 that is thenassociated with a specific club at the location-aware device. In thecase that the identification data does not identify a specific club, auser may synchronize each of the tags before they are used by inputtingdata to the location-aware device that identifies a correspondencebetween the tag identification data and a club to which each respectivetag is attached. Information included in the data transmitted from thetag 200 to the location-aware device 100 may also include informationindicating a status of the battery 245 of the tag.

Upon receiving the data from the tag 200, the microcontroller 105 of thelocation-aware device 100 processes the received data S330, Thisprocessing may include, but is not limited to, associating a ball strikeindication with OPS position data to record an identification of theclub used to hit the ball at the current location of the location-awaredevice 100. This association of data may then be output at the graphicaluser interface of the location-aware device 100 to indicate that strokehas been taken with a specific club at the current location of thelocation-aware device. Such a configuration allows a shot to beautomatically stored in the location-aware device I 00 without any userintervention, thus simplifying a process of tracking a score and otherstatistics related to the round of golf using the location-aware device.As discussed above, other data may be associated with the transmissionfrom the tag 200 to the location-aware device 100, such as club IDand/or motion dynamics and/or additional sensor data. The data ismaintained in the location-aware device 100 to track a player's roundand may be uploaded to a website or other data repository for analysis.

In one exemplary embodiment, the tag 200 transmits the raw sensor datadirectly to the location-aware device 100. The microcontroller 105 ofthe location-aware device 100 would then process the sensor data andcompare it to data patterns stored in memory (e.g. flash memory 115 orRAM memory 110) that would indicate a ball strike and/or other clubdynamics that would want to be further processed or displayed. Thetransceiver 215 of the tag 200 may also receive signals from thelocation-aware device 100 in order to “poll” and/or request informationsuch as battery status from the tag on demand. This would enable a clubinventory system to be implemented by the location-aware device 100where the receiver tracks the status of the tag 200 and is able toprocess the dynamic state of the club. This process is discussed in moredetail below with reference to FIGS. 14A-148.

FIGS. 4A-4C is a flow chart showing a more detailed flow of detecting aball strike event using the various sensors located in the tag 200. Theprocess starts at S400 where the microcontroller 205 of the tag 200 maymonitor a status of one or more sensors of the tag 200 to determine ifthe club has been removed from the player's bag. It is important to knowwhen a tag is “at rest” and when it is in an “active” state so that datais not unnecessarily (e.g. continuously) transmitted from the tag 200when the club is inactive. Such a determination also allows themicrocontroller 205 to conserve power of the tag battery 245 bycontrolling the power management circuit 250 to reduce or eliminatepower supplied from the battery 245 to the various components of the tag200 when the club is not being used. The “at rest” and “active”determination is made by the microcontroller 205 of the tag 200 readingsensor data received from the microcontroller 205, which is stored inmemory.

These sensor outputs reflect the removal of a golf club from a golf bag,thus indicating that the club is about to be used for a shot. On exampleof sensor data used to trigger the microcontroller 205 to begin aprocess of detecting a ball strike is club tilt data. Themicrocontroller 205 reads S405 the club tilt data stored in the memory210 and determines that the club has gone from an inverted state to anupright state. Various sensor outputs, either individually or incombination, may be processed by the microcontroller in order to make adetermination that the club is “active”. Examples of these sensoroutputs may include outputs of the position sensor 225, theaccelerometer 220 and/or the gyro sensor 235.

An exemplary process flow of acquiring and analyzing the tilt sensordata is described in the flow chart shown in FIG. 5. As noted above, anyone or a plurality of data from the position sensor 225, theaccelerometer 220 and/or the gyro sensor 235 may be monitored S500 bythe microcontroller S205 to determine if the club is in an active state.The microprocessor reads the tilt data S505 (e.g., the output of the oneor more sensors used to detect tilt) and determines S5I O whether theoutput exceeds an initial threshold value, which is stored in the memory210. When the output does not exceed a threshold value (e.g. the club isnot sufficiently tilted), the microprocessor continues to monitor S500the tilt data. When it is determined that the tilt data exceeds thethreshold value, the microprocessor 205 then calculates S515 apercentage value of the tilt data with respect to a maximum value of thetilt data and determines S520 whether this percentage is greater than athreshold value.

When the percentage does not exceed a threshold percentage (e.g. theclub is not sufficiently tilted), the microprocessor continues tomonitor S500 the tilt data. When it is determined that the calculatedpercentage exceeds the threshold percentage, the microprocessor writesthe percentage to the memory S525.

Referring again to FIG. 4A, the microprocessor 205 determines whetherthe club is “active” or out of the bag by monitoring the tilt datastored in the memory. As described above, when the microprocessor 205determines that the calculated percentage exceeds the thresholdpercentage, the microprocessor writes the percentage to the memory 210.Similarly, the process may be used to determine that the club has beenreturned to the bag after it has been in an active state. In the casethat the club has been active and has been returned to the bag, the tagmay send S417 an indication to the location-aware device that the clubhas been returned to the bag. In the case that this process serves as adetermination S415 that the club has been removed from the bag, it actsas a trigger for the tag to wake up, or to start actively processingoutputs from other sensors of the tag. The detection of a change to anactive state may also result in the microcontroller 205 of tag tocontrol the transceiver 215 of the tag to send S420 an indication to thelocation-aware device that the club is in an active state or has beenremoved from the bag. This transmitted information indicates both thatthe club is now in an active state, and includes a unique IDcorresponding to the tag. As discussed above, this unique ID mayspecifically identify the club, or it may be some other type of ID thatis specific to the tag and has previously been correlated with anidentification of the club to which it is attached at the location-awaredevice. The location-aware device may then display an indication to auser that a specific club has been selected for a shot.

Another option for detecting an “at rest” or “active” state of the clubis to detect data from a light sensor included in the tag 200. Themicrocontroller 205 reads S410 the light data stored in the memory 210and determines that the club has gone from a dark state (e.g. in a golfbag) to a light state (e.g., out of golf bag) when the level oflightdetected by a light sensor included in the tag 200 exceeds apredetermined threshold.

An exemplary process flow of acquiring and analyzing the light sensordata is described in the flow chart shown in FIG. 6. The microprocessorreads the light data S605 (e.g., the output of a light sensor 243included in, or attached to, the tag 200) and determines S610 whetherthe output of the light sensor exceeds an initial threshold value, whichis stored in the memory 210. When the output does not exceed a thresholdvalue (e.g. the club is still in a dark state), the microprocessorcontinues to monitor S600 the light data. When it is determined that thelight data exceeds the threshold value, the microprocessor 205calculates S615 a percentage value of the light data with respect to amaximum value of the light data and determines S520 whether thispercentage is greater than a threshold percentage. When the percentagedoes not exceed a threshold percentage (e.g. the level of light is notsufficient enough to indicate that the club has been removed from thebag), the microprocessor continues to monitor S600 the light data. Whenit is determined that the calculated percentage exceeds the thresholdpercentage, the microprocessor writes the percentage to the memory S625.

Referring again to FIG. 4A, the microprocessor 205 determines whetherthe club is “active” or out of the bag by monitoring the light datastored in the memory. As described above, when the microprocessor 205determines that the calculated percentage exceeds the thresholdpercentage, the microprocessor writes the percentage to the memory 210.

This process serves as a determination S415 that the club has beenremoved from the bag, and acts as a trigger for the tag to wake up, orto start actively processing outputs from other sensors of the tag. Thedetection of a change to an active state may also result in themicrocontroller 205 of tag to control the transceiver 21S of the tag tosend S420 an indication to the location-aware device that the club is inan active state or has been removed from the bag. This transmittedinformation indicates both that the club is now in an active state, andincludes a unique ID corresponding to the tag. As discussed above, thisunique ID may be specifically identify the club, or it may some othertype of ID that is specific to the tag and has previously beencorrelated with an identification of the club to which it is attached atthe location-aware device. The location-aware device may then display anindication to a user that a specific club has been selected for a shot.

The processes described above of determining if a club is in an “atrest” and “active” state may be used together or individually. Forexample, the tag may be configured to transition from the “at rest”state to the “active” state by monitoring only the detected light valueor the detected tilt of the club. On the other hand, the microprocessor205 of the tag may monitor both attributes and determine to transitionthe tag into active mode only after both of the sensed tilt data andlight data exceed the threshold value.

Further, as discussed above in each individual example, the detection ofa change to an active state may also result in the microcontroller 205of tag to control the transceiver 215 of the tag to send S420 anindication to the location-aware device that the club is in an activestate or has been removed from the bag. This transmitted informationindicates both that the club is now in an active state, and includes aunique ID corresponding to the tag. As discussed above, this unique IDmay specifically identify the club, or it may some other type of ID thatis specific to the tag and has previously been correlated with anidentification of the club to which it is attached at the location-awaredevice. The location-aware device may then display an indication to auser that a specific club has been selected for a shot.

Once the tag is determined to have transitioned into the active state,the microcontroller 205 of the tag reads S425 accelerometer data frommemory to determine if a ball strike event has occurred.

An exemplary process flow of acquiring and storing the accelerometerdata is described in the flow chart shown in FIG. 7. The microprocessor205 reads X-axis S705, Y-axis S710 and Z-axis S715 data output from theaccelerometer 220. The microprocessor 205 then analyzes the data outputfrom the accelerometer, and determines S720 if the data exceeds athreshold that would indicate a club swing or club swing and ballstrike. When the output does not exceed a threshold value (e.g. the datais insufficient to indicate that a swing has been taken), themicroprocessor continues to monitor S700 the accelerometer data. When itis determined that the accelerometer data exceeds the threshold value,the microprocessor 205 calculates S725 a percentage value of theaccelerometer data with respect to a maximum value of the accelerometerdata and determines S730 whether this percentage is greater than athreshold percentage. When the percentage does not exceed a thresholdpercentage, the microprocessor 205 continues to monitor S700 theaccelerometer data. When it is determined that the calculated percentageexceeds the threshold percentage, the microprocessor writes thepercentage to the memory S735.

Referring back to FIG. 4B, once the accelerometer data is read by themicroprocessor 205, the gyro sensor data is read S430. The process ofacquiring and storing the data output from the gyro sensor 235 will bedescribed with reference to FIG.

8.

The microprocessor 205 reads X-axis S805, Y-axis S810 and Z-axis S815data output from the gyro sensor 235. The microprocessor 205 thenanalyzes the data output from the gyro sensor, and determines S820 ifthe data exceeds a threshold that would indicate a club swing or clubswing and ball strike. When the output does not exceed a threshold value(e.g. the data is insufficient to indicate that a swing has been taken),the microprocessor continues to monitor S800 the gyro sensor data. Whenit is determined that the data output from the gyro sensor exceeds thethreshold value, the microprocessor 205 calculates S825 a percentagevalue of the gyro sensor data with respect to a maximum value of thegyro sensor data and determines S830 whether this percentage is greaterthan a threshold percentage. When the percentage does not exceed athreshold percentage, the microprocessor 205 continues to monitor S800the gyro sensor data. When it is determined that the calculatedpercentage exceeds the threshold percentage, the microprocessor writesthe percentage to the memory S835.

As noted above, the processes described in FIGS. 7 and 8 indicate howthe microcontroller 205 calculates a percentage of an output of each ofthe accelerometer and gyro sensors relative to a golf swing and storesthis data in memory 210. Referring back to FIG. 4B, once this data isstored, the microprocessor 205 reads the data from the memory S425 andS430 to determine whether the golf club is being swung. Similarly to howthe tilt and light data are used to determine if the club has beenremoved from the bag, the accelerometer and gyro sensor data are thenused to determine S435 if the club is being swung by the player. If themicroprocessor 205 determines S435 that the club is not being swungbecause percentage data corresponding to one or both of theaccelerometer and the gyro is not stored, the process returns to thebeginning S400 and the microprocessor continues to determine whether theclub is in an active or rest state. If percentage data corresponding toboth the accelerometer output and the gyro sensor are stored in memory,the microcontroller determines S440 whether the stored data exceeds athreshold value. If the stored data does not exceed the threshold, theprocess returns to the beginning S400 and the microprocessor continuesto determine whether the club is in an active or rest state. If both ofthe stored accelerometer percentage and gyro percentage exceed apredetermined threshold value, the microcontroller 205 then reads astored percentage corresponding to an output of the piezo sensor 230.

In the overall flow of detecting the shot, the piezo data is used todetect the impact of a ball on the face of the club to which the tag isattached. Thus, building on the sensor outputs define above, the flowfirst determines of the club is in an active or rest state by monitoringdata indicating a tilt of the club and/or light data. The process thenlooks to the accelerometer and gyro sensor data to determine if the clubis actually being swung. If the club is active and has been swung, themicrocontroller 205 then looks to the output of the piezo sensor todetermine if the active and swinging club has made contact with a ball.If so, it is likely that the club has been used to strike a ball.

An exemplary process flow of acquiring and storing the piezo sensor datais described in the flow chart shown in FIG. 9. The microprocessor 205reads S905 vibration or shock data output from the piezo sensor. Themicroprocessor 205 then analyzes the data output from the piezo sensor,and determines S910 if the data exceeds a threshold that would indicatea ball strike. When the output does not exceed a threshold value (e.g.the data is insufficient to indicate that the club has impacted a ball),the microprocessor continues to monitor S900 the piezo sensor data. Whenit is determined that the accelerometer data exceeds the thresholdvalue, the microprocessor 205 calculates S915 a percentage value of thepiezo data with respect to a maximum percentage and determines S920whether this percentage is greater than a threshold percentage. When thepercentage does not exceed a threshold percentage, the microprocessor205 continues to monitor S900 the piezo sensor data. When it isdetermined that the calculated percentage exceeds the thresholdpercentage, the microprocessor writes the percentage to the memory S925.

Referring back to FIG. 4B, the microprocessor 205 then determines S450whether the stored percentage corresponding to the piezo sensor data isgreater than a threshold value.

When this value does not exceed the threshold value, the processcontinues monitoring S400 the tilt and/or light data to determinewhether the club has again transitioned into an active state. When it isdetermined that the stored piezo sensor data percentage exceeds thethreshold, the microcontroller 205 then sends S455 the storedpercentages related to the piezo sensor data, the gyro sensor data andthe accelerometer to the transceiver 215, which then transmits S460 thisdata to the location-aware device. The transmitted data may also beaccompanied with other data such as the identification informationcorresponding to the tag or club, as discussed above. Once it isdetermined that the data has been transmitted S465 from the tag to thelocation-aware device, the process returns to S400 and themicrocontroller again starts waiting for a determination that the clubhas entered an active state.

FIGS. 10-12 describe exemplary sensor outputs, and the relationshipbetween these outputs and the detection of a shot.

FIG. 10 shows club position as determined by accelerometer X-Axisorientation based on static acceleration (i.e. relationship to gravitywhen not in motion). Upright club position is determined by approx 1 G,horizontal by O G's, and inverted by approx—1 G These scaling factorsare adjustable and can be refined with further calibration. Also shownare three practice swings indicated by X-axis dynamic accelerationfollowed by three swings showing x-axis dynamic acceleration accompaniedby a voltage indication from the piezo sensor. The piezo sensordetermines a ball strike independently from the accelerometer andoutputs a 0 voltage if sensor activity is below the piezo sensor'ssensing threshold and it outputs a slight voltage in proportion to thevibration it senses. A microcontroller reads the voltage output from thepiezo sensor which can be either analog or digital depending on sensorand circuitry and outputs a logic O or logic 1 depending on the voltagethresholds. The accelerometer data and piezo sensor data are transmittedto the location-aware device when they exceed a predetermined thresholdas determined by the microcontroller 205 of the tag. As discussed below,the location-aware device determines if a ball strike indication wassent in the same time frame that club acceleration took place and thusvalidates a ball strike indication. As discussed above, if themicrocontroller 205 of the tag determines that there is data output fromthe accelerometer that exceeds the preliminary threshold data stored atthe tag, but the piezo data does not exceed this threshold, thendepending on configuration parameters, either no sensor data istransmitted to the location-aware device or the data is transmitted withthe intent to provide adaptive feedback to the system to refineprocessing of data for further events. Once the sensor data hassatisfied the initial threshold values at the tag, then the data istransmitted to the location-aware device to allow for a more refineddetection as to whether a ball strike even should be registered, asdiscussed above.

FIG. 11 shows the relationship of club tilt angle to a ball strike. Asshown in this figure, the club position data, as indicated by theposition data or the gyro data provides a clear indication of a ballstrike at a particular time. As shown in the figure, there is a highlikelihood of a ball strike when the club is quickly inverted,horizontal, then upright with a piezo output during the upright portionof this sequence.

Further, FIG. 11 also shows how the tag can process tilt information todetermine when a club has been removed from the bag. During play, a clubstored in the player's bag is typically stored in an inverted (e.g.,stored in upright golf bag) or horizontal state (e.g., stored in a baglaying flat). However, when the club is help upright, or when the clubtransitions between, upright, horizontal and inverted during a shortenedtime period, there is a high likelihood that this club is now active andis about to be used for a shot.

FIG. 12 shows the relationship of club acceleration to a ball strikeindication. It is possible to capture the brief time domain clubdeceleration due to the club striking the ball. The club accelerationand deceleration profiles would be processed numerically to form datapatterns. The data patterns would be used to indicate and/or verifyand/or augment other data inputs for a ball strike. An additionalbenefit of this is to profile a golfer's swing pattern with his ownclubs to upload for further analysis.

FIG. 13 shows an exemplary process flow of the location-aware deviceupon receiving data from the tag. The process starts with thetransceiver 165 of the location-aware device receiving S1300 theidentification information and sensor data from the tag. Upon receivinga transmission from the tag, the microcontroller 105 of thelocation-aware device processes the received tag data S1305. Thisprocess includes demodulating, unscrambling and/or decrypting S1310 thepacket data received from the tag.

The location-aware device then references S1315 stored tag ID and clubID information based on ID information received from the tag. Asdescribed above, the ID information received from the tag may bespecific club identification data (e.g. 5-iron, driver, etc.) or maybeID information unique to the tag that has been pre-registered in thelocation-aware device as corresponding to a particular club. This allowsthe club to which the tag is attached to be identified by thelocation-aware device for subsequent processing.

The location-aware device also references S1315 stored sensor parametersand thresholds to determine what subsequent steps should be performedbased on the received data.

As discussed above, one transmission from the tag may indicate that theclub is not in an active state and that the club has been removed fromthe player's golf bag. The location-aware device determines S1320 thatthe club has been removed from the player's bag based on the datatransmitted from the tag. As discussed above, once the tilt and/or lightsensor data indicates that the club is active, the tag transmits an “Outof Bag” message to the location aware-device. Upon receiving thismessage, the location-aware device may store S1325 the identification ofthe club in association with a current location of the location-awaredevice, and output a message S1330 to the player via the GUI of thelocation-aware device that a specific club or clubs have been removedfrom the player's bag. The location-aware device then analyzes the datareceived from the tag to determine S1335 if the sensor data receivedfrom the tag indicates that there has been a ball strike.

Some examples of processing the received sensor data are described ingreater detail below. The microcontroller of the location-aware deviceanalyzes the received sensor data to determine whether a ball strikeevent has occurred. Below are specific examples of how the data isprocessed by the location-aware device to determine whether a ballstrike event has occurred. Once the location-aware device determinesthat a ball strike even has occurred, the location-aware device stores acurrent location of the ball strike and an identity of the club used forthe ball strike event. This information may then be displayed S1345 to auser of the location-aware device as an indication that a stroke hasbeen taken. The GUI may also display information identifying thelocation of the stroke and update a user's current score for a round ofgolf based on the detected stroke.

The location-aware device may also receive an indication from the tagthat the club has been returned to the bag. This signal could betransmitted from the tag based on a determination that the light sensorhas transitioned from a light state to a dark state, or that the club isstored in an inverted position for a predetermined time period afterhaving entered an active state. Obviously a combination of these sensoroutputs could be used by the tag to determine that the club has beenreturned to the bag.

Upon determining S1350 that the signal received from the tag indicatesthat the club has been returned to the bag, the location-aware devicedisplays S1355 that the club has been returned to the bag.

The location-aware device, however, is also able to determine if a clubhas been lost on the course by determining that the club has not beenreturned to the bag after receiving an indication that the club is in anactive state from the transmitter. For example, the location-awaredevice may determine that the device has moved a predetermined distancewithout receiving an indication that the club has been returned to thebag after being in an active state. Alternatively, the location-awaredevice may determine that a club indicated as being in an active statehas not been returned to the bag after a predetermined period of timefrom receiving the indication that the club was active. Upon eitherdetermination, the location-aware device may initiate a lost clubindication and display a message to the player S1360 indicating theposition of the course corresponding to the last time the club wasactivated. The player can then identify where the club was left behind,and retrieve the club.

There are several ways the probability of a ball strike can bedescribed. Ideally this would be configurable to match the golfer orgolf clubs used once a profile is established. The probability will be areal number in the range of 0 to 1. As the probability of a ball strikeevent approaches 100% the greater the possibility the system isdetecting a ball strike.

Several examples follow of ways to implement probability to determine aball strike event based on the fusion of the sensor data. One ormultiples of sensors can be included in the implementation. Typically,the more data provided in the system the more accurate the probabilitywill be.

The data below indicates exemplary threshold indications of a ballstrike based on the different algorithms if the ball strike % thresholdis 75%. The ball strike% threshold is configurable and would be adaptiveas the system “learned” the dynamics and sensor indications of a ballstrike. This would be implemented by giving the golfer the ability toverify that a golf swing produced a ball strike or did not produce aball strike. This data would be recorded into memory to help refine andoptimize the sensor algorithms over time. This would be an optionalinput by the golfer.

Terms:

-   P=Probability-   BSE=Ball Strike Event-   C=Club Position Sensor Data A=Accelerometer Sensor Data-   P=Piezo Sensor Data G=Gyro Sensor Data-   Wf=Weighting factor (0 ton)

The first example described below, describes an embodiment in which themicrocontroller of the location-aware device processes club positionsensor data, accelerometer sensor data, piezo sensor data and gyrosensor data to determine if a ball strike event has occurred. Theprobability of a ball strike event P(BSE) in this instance can bedetermined as (P)BSE=(C(% Degrees Up, Down, Horizontal)/Threshold)*(A/AData Samples)+(P/P Data Samples)+(G/G Data /Samples)/3. Tables 1-4 showexemplary P(BSE) calculations based on this relationship.

TABLE 1 P(BSE) = 100% Sensors Club Position Accelerometer Piezo GyroSensor Data 100 Deg +/− % 60 60 60 Sample Rate 100 Threshold 60 60 60Sensor Data % 100% 100% 100% 100%

TABLE 2 P(BSE) = 87% Sensors Club Position Accelerometer Piezo GyroSensor Data 95 Deg +/− % 55 55 55 Sample Rate 100 Threshold 60 60 60Sensor Data % 95% 92% 92% 92%

TABLE 3 P(BSE) = 61% Sensors Club Position Accelerometer Piezo GyroSensor Data 85 Deg +/− % 40 50 40 Sample Rate 100 Threshold 60 60 60Sensor Data % 85% 67% 83% 67%

TABLE 4 P(BSE) = 40% Sensors Club Position Accelerometer Piezo GyroSensor Data 75 Deg +/− % 40 40 40 Sample Rate 100 Threshold 60 60 60Sensor Data % 75% 67% 67% 67%

The second example described below, the probability of a ball strikeevent P(BSE) in can be determined as (P)BSE=(C(% Degrees Up, Down,Horizontal)/Threshold)+[(A/A Data Samples)+(P/P Data Samples)+(G/G DataSamples))/4. Tables 5-8 show exemplary P(BSE) calculations based on thisrelationship.

TABLE 5 P(BSE) = 100% Sensors Club Position Accelerometer Piezo GyroSensor Data 100 Deg +/− % 60 60 60 Sample Rate 100 Threshold 60 60 60Sensor Data % 100% 100% 100% 100%

TABLE 6 P(BSE) = 93% Sensors Club Position Accelerometer Piezo GyroSensor Data 95 Deg +/− % 55 55 55 Sample Rate 100 Threshold 60 60 60Sensor Data % 95% 92% 92% 92%

TABLE 7 P(BSE) = 75% Sensors Club Position Accelerometer Piezo GyroSensor Data 85 Deg +/− % 40 50 40 Sample Rate 100 Threshold 60 60 60Sensor Data % 85% 67% 83% 67%

TABLE 8 P(BSE) = 69% Sensors Club Position Accelerometer Piezo GyroSensor Data 75 Deg +/− % 40 40 40 Sample Rate 100 Threshold 60 60 60Sensor Data % 75% 67% 67% 67%

The third example described below, the probability of a ball strikeevent P(BSE) in can be determined as (P)BSE=(C(% Deg Up, Down,Horizontal)/Threshold)*(A/A Data Samples)*(P/P Data Samples)*(G/G DataSamples). Tables 9-12 show exemplary P(BSE) calculations based on thisrelationship.

TABLE 9 P(BSE) = 100% Sensors Club Position Accelerometer Piezo GyroSensor Data 100 Deg +/− % 60 60 60 Sample Rate 100 Threshold 60 60 60Sensor Data % 100% 100% 100% 100%

TABLE 10 P(BSE) = 73% Sensors Club Position Accelerometer Piezo GyroSensor Data 95 Deg +/− % 55 55 55 Sample Rate 100 Threshold 60 60 60Sensor Data % 95% 92% 92% 92%

TABLE 11 P(BSE) = 31% Sensors Club Position Accelerometer Piezo GyroSensor Data 85 Deg +/− % 40 50 40 Sample Rate 100 Threshold 60 60 60Sensor Data % 85% 67% 83% 67%

TABLE 12 P(BSE) = 22% Sensors Club Position Accelerometer Piezo GyroSensor Data 75 Deg +/− % 40 40 40 Sample Rate 100 Threshold 60 60 60Sensor Data % 75% 67% 67% 67%

In the fourth example described below, the probability can be furtherrefined by including weighting factors into the algorithm. The weightingfactors can be individually described for each set of sensor data. Theprobability of a ball strike event P(BSE) in can be determined as(P)BSE=(C(% Deg Up, Down, Horizontal)/Threshold*C Wf)*[(A/A DataSamples*A Wf)+(P/P Data Samples*P Wf)+(G/G Data Samples*G Wf)]/3. Tables13-16 show exemplary P(BSE) calculations based on this relationship.

TABLE 13 P(BSE) = 100% Sensors Club Position Accelerometer Piezo GyroSensor Data 100 Deg +/− % 60 60 60 Sample Rate 100 Threshold 60 60 60Sensor Data % 100% 100% 100% 100% Weighting Factor 1.00 1.00 1.00 1.00

TABLE 14 P(BSE) = 94% Sensors Club Position Accelerometer Piezo GyroSensor Data 95 Deg +/− % 55 55 55 Sample Rate 100 Threshold 60 60 60Sensor Data % 95% 92% 92% 92% Weighting Factor 1.00 1.00 1.25 1.25

TABLE 15 P(BSE) = 66% Sensors Club Position Accelerometer Piezo GyroSensor Data 85 Deg +/− % 40 50 40 Sample Rate 100 Threshold 60 60 60Sensor Data % 85% 67% 83% 67% Weighting Factor 1.00 1.00 1.25 1.25

TABLE 16 P(BSE) = 54% Sensors Club Position Accelerometer Piezo GyroSensor Data 75 Deg +/− % 40 40 40 Sample Rate 100 Threshold 60 60 60Sensor Data % 75% 67% 67% 67% Weighting Factor 1.00 1.00 1.25 1.25

In the fifth example described below, the probability can be furtherrefined by including weighting factors into the average. The probabilityof a ball strike event P(BSE) in can be determined as (P)BSE=(C(% DegUp, Down, Horizontal)/Threshold*C Wf)*[(A/A Data Samples*A Wf)+(P/P DataSamples*P Wf)+(G/G Data Samples*G Wf)]/Avg*Wf. Tables 17-20 showexemplary P(BSE) calculations based on this relationship.

TABLE 17 P(BSE) = 100%-Weighting Factor = 1 Sensors Club PositionAccelerometer Piezo Gyro Sensor Data 100 Deg +/− % 60 60 60 Sample Rate100 Threshold 60 60 60 Sensor Data % 100% 100% 100% 100%

TABLE 18 P(BSE) = 99%-Weighting Factor = 1.05 Sensors Club PositionAccelerometer Piezo Gyro Sensor Data 95 Deg +/− % 55 55 55 Sample Rate100 Threshold 60 60 60 Sensor Data % 95% 92% 92% 92%

TABLE 19 P(BSE) = 69%-Weighting Factor = 1.05 Sensors Club PositionAccelerometer Piezo Gyro Sensor Data 85 Deg +/− % 40 50 40 Sample Rate100 Threshold 60 60 60 Sensor Data % 85% 67% 83% 67%

TABLE 20 P(BSE) = 57%-Weighting Factor = 1.05 Sensors Club PositionAccelerometer Piezo Gyro Sensor Data 75 Deg +/− % 40 40 40 Sample Rate100 Threshold 60 60 60 Sensor Data % 75% 67% 67% 67%

Described below are specific examples of P(BSE) calculations for ballstrike and/or swing conditions in a real playing environment. Thesecalculations are based on the first example of calculating the P(BSE)using (P)BSE=(C(%Degrees Up, Down, Horizontal)/Threshold)*(A/A DataSamples)+(P/P Data Samples)+(G/G Data /Samples)/3.

The first example shows an exemplary ideal ball strike. In this example,the club is being swung by a player and making full contact with theball first. Ideally, all the sensor outputs should match the maximumsensor data indicating a full swing with ball impact.

TABLE 21 Ideal Ball Strike P(BSE) = 100% Sensors Club PositionAccelerometer Piezo Gyro Sensor Data % 100% 100% 100% 100%

The second example shows an exemplary good ball strike. In this example,a ball strike event has occurred, but it is possible that the player didnot take a full swing with the club (i.e., the club did not gocompletely vertical) or the player hit the ground before hitting theball with the face of the club.

TABLE 22 Good Ball Strike P(BSE) = 96% Sensors Club PositionAccelerometer Piezo Gyro Sensor Data % 100% 95% 95% 95%

The third example shows the data that indicates a practice swing. Inthis situation, since the face of the club does not make contact withthe ball, the club position, accelerometer, and gyro sensor may indicatea club swing event, but the piezo data is at 0% indicating the clubnever made contact with the ball. Such an event would likely be detectedby the tag, and would prevent the piezo data from being stored at thetag, thus preventing the tag from transmitting any data to thelocation-aware device. Otherwise stated, since the piezo data is at 0%,the output of the piezo data would not exceed the threshold percentageset by the tag, and thereby not result in an output of data from the tagto the location-aware device.

TABLE 23 Practice Swing P(BSE) = 73% Sensors Club Position AccelerometerPiezo Gyro Sensor Data % 100% 95% 0% 95%

The fourth example is the sensor data in the case of a partial practiceswing. This situation is similar to the example of the full practiceswing in that the piezo data is at 0%. However, in this example, theacceleration data and the gyro sensor are also lower.

TABLE 24 Partial Practice Swing P(BSE) = 65% Sensors Club PositionAccelerometer Piezo Gyro Sensor Data % 100% 80% 0% 80%

The fifth example reflects the sensor data when the club makes contactwith the ground prior to making contact with the ball during a fullswing event. Obviously in this scenario a ball strike even should beregistered. When the club makes contact with the ground prior tostriking the ball, all of the sensor outputs are reduced from that of anideal shot, but all exceed 80%, for example, thus providing a highprobability that a ball strike event has occurred.

TABLE 25 Full Swing with Club Hitting Ground Then Ball P(BSE) = 89%Sensors Club Position Accelerometer Piezo Gyro Sensor Data % 95% 80% 90%90%

The sixth example shows an example of the sensor outputs during a sandshot, in which the sand is impacted prior to making contact with theball. In this example, the club position, accelerometer and gyro sensorsall reflect a full swing, but the piezo sensor data is reduced due tothe club impacting the sand before the ball. In this case, a ballsstrike event should be registered.

TABLE 25 Sand Shot P(BSE) = 78% Sensors Club Position AccelerometerPiezo Gyro Sensor Data % 95% 67% 90% 90%

The seventh example shows the sensor data when taking a chip shot ormaking a partial swing at the ball. Obviously, in this scenario, theaccelerometer data will be impacted, but the club position, gyro andpiezo data would make up for the deficiency of the accelerometer output.In this scenario, a ball strike event should be registered.

TABLE 26 Pitch Shot P(BSE) = 76% Sensors Club Position AccelerometerPiezo Gyro Sensor Data % 95% 60% 90% 90%

As discussed above, the thresholds included in the tags andlocation-aware device may be configured to as to better detect a ballstrike event. FIG. 16 describes the adaptive process pertaining to tags.

An advantage of having the ability to have configurable sensorthresholds, parameters and weighting factors in memory S1605 on both thetag 1600 and handheld systems is that it allows for refinement of thesensor data to the characteristics of different clubs and swingpatterns. For example, a tag on a driver can have a different sensorprocessing profile compared to a golf club iron, sand wedge or putter.Each can be configured differently to accommodate the dynamics andcharacteristics of each club. Likewise, different swing patterns can beaccommodated so as to accommodate the difference in the swing profile ofa driver compared to a putter. Furthermore, the sensor processingprofiles on the tags and location-aware device can be adaptive throughactive feedback from a user indicating that a shot resulted or did notresult in a ball strike or conditions in which the club is or is not inthe bag. This feedback would be optionally transmitted to the tag(s) viathe transceiver on the handheld device. Additionally, the tags could beself-adaptive in that they could sense sensor noise in the system andadjust their thresholds accordingly or inversely if the sensor input istoo strong it could be adjusted down to a more appropriate level.

The sensor thresholds and parameters on the tags primarily act asfilters to minimize sensor “noise” from adversely migrating into thesensor data. The tag sensor thresholds and parameters secondarily thenact as “tuning” mechanisms to optimize the performance of the sensorwith the respective club and thirdly to allow for adaptive tag sensorsystem optimizations as described above. This is accomplished by themicrocontroller software and logic monitoring S1610 the real-time sensordata in the time domain S1615 when the tag sensor is in an active stateS1600. The data is processed by using Fast Fourier Transforms (FFT) orother techniques to establish levels of data frequency over time S1620.This data is then compared to the sensor threshold and parameter data inmemory S1605 and processed in a logic function S1625 to determine if thefrequency of the data is higher than the threshold data in memory. If itis it adjusts the data thresholds and parameters S1630 and updates theminto the memory S1605. If the frequency of data is not higher after thecomparison then a logic function S1635 determines that it is lower. Ifit is lower, then the threshold data is modified and updated into memoryS1630. If the adaptive process determines no threshold changes areneeded, then the system continues monitoring the sensor data S1605 whenthe tag sensor 1600 is in an active state. The tag transceiver processS1640 transmits any adaptive threshold changes in memory S1605 to thelocation-aware device's receiver for monitoring in the location-awaredevice. The transceiver S1640 can also receive threshold and parameterdata sent to the tag by the handheld for updating into the tag memoryS1605.

As described in FIG. 17, the sensor monitoring thresholds and parameterson the location-aware device allow the location-aware device to makedeterminations based on the patterns of the incoming tag sensor dataS1700 as to whether a certain pattern of data was produced by the golfclub striking a golf ball. As on the tags, the location-aware devicespecific thresholds and parameters can be modified in the handheldmemory S1710 to optimize the data for certain club dynamics that may beexperienced for example by different golf club types, shafts, materialsand manufacturers of clubs, etc. This is accomplished by monitoring thesensor data frequency over time S1715 and establishing a data frequencyprofile S1720 and then comparing the data frequency profile S1725 to thedata thresholds and parameter profiles in the location-aware devicememory S1710. The data is processed through logic functions S1730 and S1735 to determine if the data indicates the thresholds and parametersfor determining a club swing and ball strike need to be updated inmemory S1740.

It can likewise be adaptive in that the golfer can give active feedbackS1750 to the system that an incoming sensor data pattern was or was nota golf shot resulting in a ball strike. Furthermore, it can be adaptiveby receiving network updates either via a PC or web function S1755 toupdate the threshold and parameter data in memory S1710. Over time, theprocess of analyzing the sensor data patterns can help determine what is“noise” in the incoming data and what is valid data and continuallyupdate the thresholds and parameters in memory S1710 as necessary. Onboth the tags and the location-aware device there would be a set ofdefault thresholds and parameters that the systems could always be resetto in the event of erroneous or corrupted threshold and parameter datain memory.

As described above, the location-aware device 200 is capable of“polling” the tags to determine a status of the tags. This process maybe used to determine the status of the battery of each of the tags ormay be used to determine whether a tag, more specifically a clubcorresponding to the tag, is not within a communication distance of thelocation-aware device. If the tag is not reachable, it may provide analternative way of determining that the club was left behind on thecourse.

FIG. 14A-14B shows an exemplary embodiment of the process of activelyretrieving (e.g., “polling”) information from the tags by thelocation-aware device. Initially, the location-aware device initiatesS1400 a request to poll information from the tags, by identifying S1405the tags associated with the location-aware device. The process ofpolling information from the tags may be initiated at a predeterminedperiod of time during the operation of the location-aware device, or maybe triggered by the failure of the tag to indicate that the club hasbeen rendered at rest (i.e., returned to the player's bag) by sending anindication that the club has been returned to the bag. This is yetanother configuration by which the location-aware device may indicatethat a club has been left behind by a player by determining that thelocation-aware device is no longer able to communicate with the tag.

Once the location-aware device determines to initiate a polling requestto the tags, the microcontroller sends S1410 a “wake-up” signal to S1415the transceiver, which transmits the signal to each of the plurality oftags. The microcontroller of the location-aware device then monitorsS1420 to determine S1425 if the tags have transmitted a response to thewake-up message. If one or a plurality of the tags has not responded,the location-aware device then transmits S1415 another wake-up commandto the tags. As discussed above, if one or more of the plurality of tagshave not responded, the location-aware device may display a message tothe player via the GUI of the location-aware device. The displayedmessage may indicate that the tag is unresponsive, thus informing theuser that either the battery of the tag is dead, or that the club hasbeen lost or left behind.

Upon receiving a response from the tag, the location-aware devicetransmits a command to the tags S1430 requesting that the tags transmitits ID and current sensor data. The location-aware device monitors S1435this subsequent request for information to determine if the tag isunresponsive after the initial request. Upon receiving the initialresponse to the wake-up command and transmitting the request for the tagID and sensor data, the location-aware device waits for a responseS1435, and determines if the tag responds S1440. If the tag has not yetresponded, the location-aware device again transmits the request S1430for the tags transmit their ID and current sensor data.

After receiving and processing the data from the tag, the location-awaredevice initiates a command S1445 for the tag to enter, or reenter asleep state, and transmits this command S1450 to the tag. Optionally thetag can automatically go back into a “sleep” state.

Described below is a modification of the exemplary embodiment of theinvention. In this modification, the accelerometer aboard the tag iscapable of sensing all the data necessary to detect a ball strike.

FIGS. 15A-I 5C disclose an exemplary embodiment of a process ofdetecting a ball strike event using a tag implementing only anaccelerometer.

The process starts at S1500 where the microcontroller 205 of the tag 200may monitor S1505 a status of the tilt data provided by theaccelerometer 220 to determine if the club has been removed from theplayer's bag by determining if the club has been turned upright S1 S10,for example. If the club is not upright, the tag continues monitoringS1500 the tilt data to determine if the club has been removed from thebag and should be placed in an active state.

If the club is upright and determined to be in an active state, themicrocontroller 205 of tag controls the transceiver 215 of the tag tosend S1S15 an indication to the location-aware device that the club isin an active state or has been removed from the bag. This transmittedinformation indicates both that the club is now in an active state, andincludes a unique ID corresponding to the tag. As discussed above, thisunique ID may specifically identify the club, or it may be some othertype of ID that is specific to the tag and has previously beencorrelated with an identification of the club to which it is attached atthe location-aware device. The location-aware device may then display anindication to a user that a specific club has been selected for a shot.

Once the tag is determined to have transitioned into the active state,the microcontroller 205 of the club reads S1520 accelerometer data frommemory to determine if the club is being swung S1525. If the club is notbeing swung based on the accelerometer data, the tag continues tomonitor the status of the club S1500. If the club is being swung, themicroprocessor determines if the accelerometer data output exceeds athreshold value S1530. If the data is determined not to exceed thethreshold value, the tag continues to monitor the status of the clubS1500. If the output of the accelerometer exceeds the threshold value,the microcontroller reads the accelerometer tap data stored in memoryS1535 and determines if this data exceeds a predetermined thresholdS1540. If the data is determined not to exceed the threshold value, thetag continues to monitor the status of the club S1500. If the tap dataexceeds the predetermined threshold, the microcontroller provides S1545the accelerometer motion, tilt and tap data to the transceiver of thetag, which transmits S1550 the data along with tag ID information to thelocation-aware device. The tag then determines if the data has not beentransmitted S1555. If the data has not yet been transmitted, the processreturns to S1550 and transmits the data. If the data has beentransmitted, the process starts monitoring the status of the club S1500.The location-aware device then processes the accelerometer motion, tiltand tap data, as discussed above with reference to FIG. 13, to determineif a ball strike event has occurred.

The present invention, therefore, is directed to a process ofautomatically detecting that a ball strike event has occurred based onsensor data detected by one or a plurality of sensors included in a tagattached to a golf club. The sensor data is initially processed by thetag to determine whether the sensor data indicates that the club hasbeen removed from the bag. Once this determination is made, the sensordata is then initially processed by the tag to determine if the outputsof the sensor data indicate that a ball strike event has taken place. Ifthe outputs of the sensors exceed these preliminary threshold values,the data is then passed onto the location-aware device for furtherprocessing to determine if a golf shot should be registered.

Various other advantages are realized by this tag configuration. Forexample, the configuration allows for the location-aware device to notonly detect that a club has been lost, but also displays a location ofthis lost club to the user.

It should also be noted that the tag system in conjunction with alocation-aware device is the preferred implementation of this inventionbecause of the benefits of associating location information with thedata, however a handheld, golf cart or golf bag mounted device that hasno “location awareness” (i.e. no GPS, inertial systems or other locationfunctions) can still utilize certain features of this system such as theclub reminder function of notifying a golfer if he has not returned aclub to the golf bag and automated scoring and statistics functions andtag polling functions for club bag inventory. There are many functionsthat would still be useful even though it would not include the shotlatitudes/longitudes or geo-location data. The golfer could still usethis system to automatically enter club used and shot data for automatedscoring purposes and logging of data and would still have the ability toapproximate his shot location and distance manually on a graphic GUI orvia a data analysis function on a PC or web-based system.

What is claimed is:
 1. A tag, comprising: a microcontroller; a pluralityof sensors that, when the tag is physically coupled to a golf club, areeach configured to output a signal to the microcontroller based on adetected movement of the golf club; and a transceiver, wherein: themicrocontroller is configured to; set, when the tag is physicallycoupled to the golf club, a sensor processing profile based on physicalcharacteristics of the golf club, the sensor processing profileincluding profile reference values for each of the plurality of sensors,compare the plurality of sensor outputs to the profile reference valuesin the sensor processing profile to determine whether any of theplurality of sensor outputs are equal to or exceed predeterminedthresholds, and control, when at least one of the plurality of sensoroutputs exceeds a corresponding predetermined threshold, the transceiverto transmit data corresponding to the plurality of sensor outputs to aremote device that is remote from the tag, the transceiver is configuredto receive, from the remote device, update parameters input to theremote device by a user in response to a display output of the data; andthe microcontroller is further configured to adjust the profilereference values according to the update parameters.